package com.teach.gui;

import com.teach.gui.Constaint.Constant;
import com.teach.gui.until.ImageUutil;

import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

/**
 * CLASS:gui：
 * TODU:1继承Frame类
 * 2重写paint（Graphics g）
 * 3在praint()中编写业务逻辑
 * date:2021/1/25、11:35
 * version:0.1
 */
public class GUITest extends Frame {
    private String title;
    public Image image= ImageUutil.getImage("img/earth.jpg");
    public GUITest(){}
    //    在实际编程中，构造方法只用于初始化属性
    public GUITest(String title){
        this.title=title+"oo";
        init(title);
    }

    /*自定义初始化方法*/
    public void init(String s){
//        大小
        this.setSize(Constant.WINDOE_WIDTH,Constant.WINDOW_HEIGH);
//        位置
//        this.setLocation(0,0);
//        设置窗口可见
        this.setVisible(true);
//        添加关闭窗口的方法
//        匿名内部类
//        参数列表中，有接口或者抽象类为参数时，并且实现接口的方法只使用一次
        this.addWindowListener(new WindowAdapter() {
            @Override
            public void windowClosing(WindowEvent e) {
               System.exit(0);
            }
        });
//        设置题目
        this.setTitle(this.title);
//        设置窗口不可修改
//        this.setResizable(false);
//        在中间显示
        this.setLocationRelativeTo(null);

    }

    @Override
    public void paint(Graphics g) {
        //        设置字体大小
        Font f = g.getFont();
        g.setFont(new Font("微软雅黑",Font.BOLD,50));
//        字体颜色
        Color c = g.getColor();
        g.setColor(new Color(255,200,0));

//      g画笔
        g.drawLine(100,100,300,300);
//        矩形
        g.drawRect(100,100,400,400);
//        画圆
        g.drawOval(100,100,400,400);
//        字
        g.drawString("大暴炸",100,100);
//        画多边形
        g.setColor(Color.red);
        int[] xpoint = {100,300,500,700,900};
        int[] ypoint = {200,400,600,800,0};
        g.drawPolygon(xpoint,ypoint,5);
//        画图片
        g.drawImage(image,200,300,null);

//        将当前的颜色恢复到默认颜色
        g.setColor(c);
        g.setFont(f);

    }


    public static void main(String[] args) {
        new GUITest("GUI");
    }
}
